clojure.test লাইব্রেরি ব্যবহার করে Unit Testing

Computer Programming - ক্লোজার (Clojure) Clojure Test Writing (Unit Testing in Clojure) |
223
223

clojure.test লাইব্রেরি ব্যবহার করে Unit Testing

Clojure তে unit testing এর জন্য clojure.test লাইব্রেরি ব্যবহৃত হয়, যা Clojure এর ইন-বিল্ট টেস্টিং ফ্রেমওয়ার্ক। এটি আপনি সহজেই আপনার কোডের বিভিন্ন অংশের জন্য টেস্ট তৈরি করতে এবং পরীক্ষণ করতে পারবেন। clojure.test লাইব্রেরি, Java এর JUnit এর মতো কাজ করে এবং এটি আপনাকে ফাংশনালিটি পরীক্ষা করার জন্য বিভিন্ন টেস্ট কেস তৈরি করতে সহায়ক।

clojure.test এর মূল ফিচারসমূহ:

  • deftest: একটি টেস্ট ফাংশন ডিফাইন করার জন্য ব্যবহৃত হয়।
  • is: টেস্ট কন্ডিশনের যাচাই করার জন্য ব্যবহৃত হয়।
  • testing: টেস্টের অধীনে একটি টেস্ট গ্রুপ বা টেস্ট কেস তৈরি করতে ব্যবহৃত হয়।

১. clojure.test লাইব্রেরি ইমপোর্ট করা

clojure.test লাইব্রেরি ব্যবহারের জন্য এটি প্রথমে ইমপোর্ট করতে হয়:

(require '[clojure.test :refer :all])

২. Unit Testing এর উদাহরণ

এখানে একটি সাধারণ উদাহরণ দেখা যাচ্ছে যেখানে একটি ফাংশন টেস্ট করা হচ্ছে।

উদাহরণ: add ফাংশন টেস্ট করা

; প্রথমে একটি ফাংশন তৈরি করা
(defn add [a b]
  (+ a b))

; এখন এই ফাংশনের জন্য unit test তৈরি করা
(deftest test-add
  (testing "Testing the add function"
    (is (= (add 2 3) 5))  ; এখানে add 2 এবং 3 যোগ করে 5 হওয়া উচিত
    (is (= (add -1 1) 0)) ; এখানে -1 এবং 1 যোগ করে 0 হওয়া উচিত
    (is (= (add 0 0) 0)))) ; এখানে 0 এবং 0 যোগ করে 0 হওয়া উচিত

(run-tests)  ; এটি সমস্ত টেস্ট চালাবে

ব্যাখ্যা:

  • deftest: test-add নামের একটি টেস্ট তৈরি করা হয়েছে যা add ফাংশনটির কার্যকারিতা পরীক্ষা করবে।
  • testing: এটি টেস্টের ব্যাখ্যা প্রদান করে, অর্থাৎ "Testing the add function"।
  • is: এটি একটি assertion যা একটি শর্ত পরীক্ষা করে। যদি শর্তটি সঠিক হয় তবে টেস্ট পাস করবে, অন্যথায় ফেইল করবে।
  • run-tests: এটি সমস্ত টেস্ট চালায় এবং ফলাফল আউটপুট হিসেবে দেখায়।

৩. অধিক টেস্ট কেস এবং ফাংশনালিটি পরীক্ষা

আপনি একাধিক টেস্ট কেস এবং ফাংশনালিটি পরীক্ষা করতে পারেন clojure.test ব্যবহার করে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি multiply ফাংশন টেস্ট করা হয়েছে।

উদাহরণ: multiply ফাংশন টেস্ট করা

(defn multiply [a b]
  (* a b))

(deftest test-multiply
  (testing "Testing the multiply function"
    (is (= (multiply 2 3) 6))      ; 2 * 3 = 6
    (is (= (multiply -1 5) -5))    ; -1 * 5 = -5
    (is (= (multiply 0 10) 0))     ; 0 * 10 = 0
    (is (= (multiply 4 -2) -8))))  ; 4 * -2 = -8

(run-tests)  ; এটি সমস্ত টেস্ট চালাবে

এখানে, multiply ফাংশনের বিভিন্ন ইনপুট দিয়ে টেস্ট করা হয়েছে এবং সঠিক আউটপুট যাচাই করা হয়েছে।


৪. কাস্টম টেস্ট রিপোর্টিং

আপনি যদি চান, তবে টেস্ট চালানোর পরে একটি কাস্টম রিপোর্ট দেখতে পারেন:

(run-tests 'your.namespace)  ; নির্দিষ্ট নেমস্পেসের টেস্ট চালাবে

এছাড়াও, আপনি একটি টেস্টের মধ্যে ফলাফল চেক করার জন্য টেস্ট ফেইল হওয়ার পরে কাস্টম মেসেজও ব্যবহার করতে পারেন:

(deftest test-add
  (testing "Testing the add function"
    (is (= (add 2 3) 5) "Add function failed with inputs 2 and 3")
    (is (= (add -1 1) 0) "Add function failed with inputs -1 and 1")
    (is (= (add 0 0) 0) "Add function failed with inputs 0 and 0")))

এখানে, আপনি যদি কোনো টেস্ট ফেইল করেন, তবে একটি কাস্টম মেসেজ আউটপুট হবে।


৫. use-fixtures এর মাধ্যমে টেস্ট ফিক্সচার ব্যবহৃত করা

use-fixtures ব্যবহার করে আপনি টেস্টের আগে বা পরে কিছু প্রি-কন্ডিশন বা পোস্ট-কন্ডিশন সেট করতে পারেন। এটি যখন আপনি কিছু রিসোর্স পরিচালনা করতে চান (যেমন, ডেটাবেস কানেকশন খোলার আগে বা ফাইলের রিড/রাইট করার আগে) তখন ব্যবহার করা হয়।

উদাহরণ: টেস্ট ফিক্সচার ব্যবহারের উদাহরণ

(use-fixtures :once setup-teardown)

(defn setup-teardown [f]
  (println "Setting up resources...")
  (f)  ; টেস্ট ফাংশন চালানো হবে
  (println "Tearing down resources..."))

(deftest test-addition
  (is (= (add 1 1) 2)))

(run-tests)

এখানে, setup-teardown ফিক্সচারটি টেস্টের আগে এবং পরে রান করবে।


সারসংক্ষেপ

ফাংশন বা কিওয়ার্ডব্যাখ্যা
deftestটেস্ট ফাংশন ডিফাইন করতে ব্যবহৃত হয়।
testingটেস্টের ব্যাখ্যা প্রদান করে।
isএকটি শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়।
run-testsসমস্ত টেস্ট চালানোর জন্য ব্যবহৃত হয়।
use-fixturesটেস্ট ফিক্সচার ব্যবহারের জন্য ব্যবহৃত হয়।

clojure.test লাইব্রেরি ব্যবহার করে Java এর মতো Clojure তেও ইউনিট টেস্টিং করা সম্ভব। এটি কোডের কার্যকারিতা নিশ্চিত করতে সহায়ক এবং আপনার প্রোগ্রামের আস্থাশীলতা বৃদ্ধি করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion